import java.io.*;
import java.util.ArrayList;
import java.util.NoSuchElementException;
import java.util.Scanner;
//Arquivo não encontrado: Erro ao abrir arquivo 1 
//Abertura sem permissão de leitura: Erro ao abrir arquivo 2
public class Main {
	static boolean file1;
	static boolean file2;
	static Scanner s1, s2;
	/*Abre Arquivo*/
	public static void openFile(String arquivo1, String arquivo2){
		try {
			s1 = new Scanner(new BufferedReader(new FileReader(arquivo1)));
			file1 = true;
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("Erro ao abrir arquivo 1");
			file1 = false;
			file2 = false;
			closeFile();//devolve recurso
		}


		finally{
			try {
				s2 = new Scanner(new BufferedReader(new FileReader(arquivo2)));
				file2 = true;
				if(!file1) throw new RuntimeException();//Falha do teste 6! Tem que fechar o programa se ocorreu erro na abertura do arquivo1
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				System.out.println("Erro ao abrir arquivo 2");
				closeFile();//devolve recurso
				file1 = false;
				file2 = false;
				System.exit(0);//sai do programa
			}
		}
	}
	public static void closeFile(){
		if (s1 != null)
			s1.close() ;
		if (s2 != null)
			s2.close() ;
	}

	public static void main(String[] args) throws IOException, RuntimeException{
		// TODO Auto-generated method stub
		Scanner standardinput = new Scanner(System.in);
		String arquivo1, arquivo2;
		arquivo1 = standardinput.nextLine();
		arquivo2 = standardinput.nextLine();
		try{
			openFile(arquivo1, arquivo2);
		}
		catch(RuntimeException e){
			System.exit(0);
			//nao faco nada, apenas teste uma excecao tratada na main, o programa encerra
		}
		ArrayList< Integer > imprimidos = new ArrayList< Integer >();// apenas um elemento de memoria para evitar repeticao de numeros ja imprimidos
		int numero1 = 0; 
		int numero2 = 0;
		int controle = 0;
		/*
		 * Este arquivo é formado por records que são do formato começando cadeia de caracteres numericos seguindo 1 ate n caracteres numericos
		 * e terminando com caractere numerico no fim de linha. 
		 * parser do record: (^[\d]+)$
		 */
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////*os dois arquivos abertos*/////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		while(file1 && file2){
			if(controle == 0){//avanca um record do arquivo 1 e do arquivo 2
				try{
					numero1 = Integer.parseInt(s1.nextLine());
				}
				catch(NoSuchElementException e){
					file1 = false;
					if(s1 != null) s1.close();
					break;//saia do while!
				}
				try{
					numero2 = Integer.parseInt(s2.nextLine());
				}
				catch(NoSuchElementException e){
					file2 = false;
					if(s2 != null) s2.close();
					//saia do while!
				}

			}
			if(controle == 1){//avanca um record do arquivo 1
				try{
					numero1 = Integer.parseInt(s1.nextLine());
				}
				catch(NoSuchElementException e){
					file1 = false;
					if(s1!=null) s1.close();
					break;//saia do while
				}
				/* NUNCA deve acontecer a exception IllegalStateException pois sempre verifica se o objeto do tipo Scanner esta null antes de tentar fecha-lo*/

				catch(IllegalStateException e){
					System.out.println("Deu merda aqui no acesso do arquivo1, fechado. OS DOIS ESTAVAM \"ABERTOS\"!");
				}
			}
			if(controle == 2){//avanca um record do arquivo 2
				try{
					numero2 = Integer.parseInt(s2.nextLine());
				}
				catch(NoSuchElementException e){
					file2 = false;
					if(s2!=null) s2.close();
					break;//saia do while
				}
				/* NUNCA deve acontecer a exception IllegalStateException pois sempre verifica se o objeto do tipo Scanner esta null antes de tentar fecha-lo*/
				catch(IllegalStateException e){
					System.out.println("Deu merda aqui no acesso do arquivo2, fechado.OS DOIS ESTAVAM \"ABERTOS\"!");
				}
			}//fim do avanco de linha do arquivo 2
			if(numero1 == numero2 && !imprimidos.contains(numero1)){
				System.out.printf("%d\n", numero1);
				imprimidos.add(numero1);
				controle = 0;//avanca para o proxima linha o arquivo1 e do arquivo 2 na proxima iteracao
			}
			if(numero1 < numero2 && !imprimidos.contains(numero1)){
				System.out.printf("%d\n", numero1);
				imprimidos.add(numero1);
				controle = 1;//avanca para o proxima linha o arquivo1 na proxima iteracao
			}//fim do if de impressao do numero1

			if(numero1 > numero2 && !imprimidos.contains(numero2)){
				System.out.printf("%d\n", numero2);
				imprimidos.add(numero2);
				controle = 2;//avanca para o proxima linha do arquivo2 na proxima iteracao
			}//fim do if de impressao do numero2
			//O que é isso abaixo!
		}//fim do while
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////*FIM* os dois arquivos abertos*/////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


		/*****************************************************************************************************************************************/
		//******************************************2 possibilidades******************************************************************************/

		/*****************************************************************************************************************************************/
		////////////////////////////////////////////////////////CASO 1/////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////arquivo1 chegou ao fim//////////////////////////////////////////////////////////////
		///////***********************testar o arquivo 2 e continuar imprimindo o restante do arquivo2************************/////////////////////
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		if(!file1&&file2){
			if(!imprimidos.contains(numero2)){
				System.out.printf("%d\n", numero2);
				imprimidos.add(numero2);
			}

			try{
				while(s2.hasNextLine()){
					numero2 = Integer.parseInt(s2.nextLine());
					if(!imprimidos.contains(numero2)){
						System.out.printf("%d\n", numero2);
						imprimidos.add(numero2);
					}//fim do if de checagem dos numeros ja imprimidos e acao de impressao

				}//fim do while que percorria as linhas restantes do arquivo2
			}//fim do caso arquivo1 acabou primeiro
			//sai do while se nao houver linha?
			//Herda de RuntimeException, logo é unchecked(não verificada)!
			catch(IllegalStateException e){//excecao gerada no teste de laco ou no uso de nextLine se o objeto s2 do tipo Scanner estiver fechado
				file2 = false;
				if(s2!=null) s2.close();//já estava fechado!
				System.exit(0);//acabou o programa!
			}//fim do bloco que captura e da o tratamento a excecao herdeira de RunTimeException
		}// fim if trata o caso arquivo 1 terminou e restava o arquivo 2
		///////***********************FIM*testar o arquivo 2 e continuar imprimindo o restante do arquivo2************************//////////////////
		/******************************************************************************************************************************************/

		/*****************************************************************************************************************************************/
		////////////////////////////////////////////////////////CASO 2//////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////arquivo2 chegou ao fim//////////////////////////////////////////////////////////////////////
		///////***********************testar o arquivo 1 e continuar imprimindo o restante do arquivo1************************//////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		if(!file2&&file1){

			if(!imprimidos.contains(numero1)){
				System.out.printf("%d\n", numero1);
				imprimidos.add(numero1);
			}
			try{
				while(s1.hasNextLine()){
					numero1 = Integer.parseInt(s1.nextLine());
					if(!imprimidos.contains(numero1)){
						System.out.printf("%d\n", numero1);
						imprimidos.add(numero1);
					}//fim do if de checagem dos numeros ja imprimidos e acao de impressao

				}//fim do while que percorria as linhas restantes do arquivo1

			}//fim do try 
			catch(NullPointerException e){
				//apenas suprimir mensagem
			}
			/*Acabou tudo*/
			//fechar arquivos e devolver recursos
			finally{
				closeFile();
			}
		}

	}//fim do metodo main
}//fim da classe Main
